#pragma once
#include <iostream>

class MyString
{
    char* m_pStr;	//������-���� ������
public:
    /*explicit */MyString(const char* Str = " ");// �����������,  explicit ��������� ����������� ��������� ��� ������
    MyString(const char* , int );
    MyString(const MyString&); //����������� �����������
    MyString(MyString&&)noexcept; //������������ ����������� �����������
    const char* GetString() const; //�����, ������� ��������� ������ � ���������� ������
    void SetNewString(const char*); //�����, ������� ����� �������� ������ �� �����
    ~MyString();//����������
    MyString operator+ (const MyString&) const;
    MyString& operator= (const MyString&);//�������� ������������ ����������� �����
    MyString& operator+= (const MyString&);
    void operator= (MyString&&)noexcept;//������������ �������� ������������
    MyString& operator= (const char*);//�������� ������������ ����������� ��������� �������
    bool operator==(const char* Str)const { if(strcmp(m_pStr, Str))return 0; else return 1;}
    friend std::ostream& operator<<(std::ostream& , const MyString&);
    operator char* () { return m_pStr; };
};

MyString concatenation(const char* Str, ...);



